package com.xt.LibaryDeskManager.service;

import com.xt.LibaryDeskManager.dto.SelectSeatDto;
import com.xt.LibaryDeskManager.vo.SelectSeatVo;

import java.util.List;
import java.util.Map;

/**
 * 选座信息业务接口
 */
public interface SelectSeatService {


    /**
     * 查询所有学生的选座信息
     * @return
     * @throws Exception
     */
    Map getAllSelectSeat(Integer page, Integer limit,SelectSeatVo selectSeatVo)throws Exception;

    /**
     * 根据座位号查找座位信息
     * @param seatNo
     * @return
     * @throws Exception
     */
    SelectSeatDto getSelectSeatByseatNo(String seatNo)throws Exception;

    /**
     * 根据日期查找选座记录
     * @param begin1
     * @return
     * @throws Exception
     */
    List<SelectSeatDto> selectByTime(String begin1,String seatNo)throws Exception;

    /**
     * 预约座位信息
     * @param selectSeatVo
     * @return
     * @throws Exception
     */
    int addSelectSeat(SelectSeatVo selectSeatVo)throws Exception;

    /**
     * 查询指定学生指定时间段预约信息
     * @param studentNo
     * @param begin2
     * @return
     * @throws Exception
     */
    int selectByTimeStudentNo(String studentNo,String begin1, Integer begin2)throws Exception;

    /**
     * 查询指定学生的选座记录
     * @param pageTool
     * @param studentNo
     * @return
     * @throws Exception
     */
    Map selectSeatByStudentNo(Integer page,Integer limit, String studentNo)throws Exception;

    /**
     * 更改预约座位的状态
     * @param seatNo
     * @param selectId
     * @return
     * @throws Exception
     */
    int updateSelectSeat(String seatNo, String selectId,int i,int j)throws Exception;

    /**
     * 分页查询指定座位日期的预约信息
     * @param begin1
     * @param seatNo
     * @return
     * @throws Exception
     */
    Map selectByTime(String begin1,String seatNo,Integer page,Integer limit)throws Exception;


    /**
     * 更新预约状态
     * @param begin1 指定日期
     * @param begin2 指定时间段
     * @param statue1 需更改的状态
     * @param statue2 更改后的状态
     */
    int updateSelectSeat(String begin1,Integer begin2,Integer statue1,Integer statue2)throws  Exception;
}
